home *** CD-ROM | disk | FTP | other *** search
- /*
- ** Astrolog (Version 4.40) File: extern.h
- **
- ** IMPORTANT NOTICE: The graphics database and chart display routines
- ** used in this program are Copyright (C) 1991-1995 by Walter D. Pullen
- ** (astara@u.washington.edu). Permission is granted to freely use and
- ** distribute these routines provided one doesn't sell, restrict, or
- ** profit from them in any way. Modification is allowed provided these
- ** notices remain with any altered or edited versions of the program.
- **
- ** The main planetary calculation routines used in this program have
- ** been Copyrighted and the core of this program is basically a
- ** conversion to C of the routines created by James Neely as listed in
- ** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
- ** available from Matrix Software. The copyright gives us permission to
- ** use the routines for personal use but not to sell them or profit from
- ** them in any way.
- **
- ** The PostScript code within the core graphics routines are programmed
- ** and Copyright (C) 1992-1993 by Brian D. Willoughby
- ** (brianw@sounds.wa.com). Conditions are identical to those above.
- **
- ** The extended accurate ephemeris databases and formulas are from the
- ** calculation routines in the program "Placalc" and are programmed and
- ** Copyright (C) 1989,1991,1993 by Astrodienst AG and Alois Treindl
- ** (alois@azur.ch). The use of that source code is subject to
- ** regulations made by Astrodienst Zurich, and the code is not in the
- ** public domain. This copyright notice must not be changed or removed
- ** by any user of this program.
- **
- ** Initial programming 8/28,30, 9/10,13,16,20,23, 10/3,6,7, 11/7,10,21/1991.
- ** X Window graphics initially programmed 10/23-29/1991.
- ** PostScript graphics initially programmed 11/29-30/1992.
- ** Last code change made 1/29/1995.
- */
-
- /*
- ******************************************************************************
- ** Function Declarations.
- ******************************************************************************
- */
-
- #ifdef PROTO
- #define P(t) t
- #else
- #define P(t) ()
- #endif
-
- /* From astrolog.c */
-
- extern void InitColors P((void));
- extern void Action P((void));
- extern void InitVariables P((void));
- extern bool FProcessCommandLine P((char *));
- extern int NParseCommandLine P((char *, char **));
- extern int NPromptSwitches P((char *, char *[MAXSWITCHES]));
- extern int NProcessSwitchesRare P((int, char **, int, bool, bool, bool));
- extern bool FProcessSwitches P((int, char **));
-
- #ifdef ATARI /* Ajout Abel PHILIPPE */
- extern void init_timezone P((void));
- #endif
-
- /* From data.c & data2.c */
-
- #define MM ciCore.mon
- #define DD ciCore.day
- #define YY ciCore.yea
- #define TT ciCore.tim
- #define ZZ ciCore.zon
- #define SS ciCore.dst
- #define OO ciCore.lon
- #define AA ciCore.lat
-
- #define Mon ciMain.mon
- #define Day ciMain.day
- #define Yea ciMain.yea
- #define Tim ciMain.tim
- #define Zon ciMain.zon
- #define Dst ciMain.dst
- #define Lon ciMain.lon
- #define Lat ciMain.lat
-
- #define Mon2 ciTwin.mon
- #define Day2 ciTwin.day
- #define Yea2 ciTwin.yea
- #define Tim2 ciTwin.tim
- #define Zon2 ciTwin.zon
- #define Dst2 ciTwin.dst
- #define Lon2 ciTwin.lon
- #define Lat2 ciTwin.lat
-
- #define ignorea(a) (aspectorb[a] <= 0.0)
-
- extern US NEAR us;
- extern IS NEAR is;
- extern CI ciCore, ciMain, ciTwin, ciSave;
- extern CP cp1, cp2;
- extern FILE *S;
- extern real MC, Asc, T, RA;
-
- extern real planet[], planetalt[], house[], ret[],
- spacex[], spacey[], spacez[], force[];
- extern GridInfo FAR *grid;
- extern byte inhouse[];
- extern int starname[], kObjA[];
-
- extern byte ignore[], ignore2[];
- extern real aspectangle[], aspectorb[], planetorb[], planetadd[];
- extern CONST int ruler2[], exalt[], rules[];
- extern int ruler1[], kMainA[], kRainbowA[], kElemA[], kAspA[];
- extern real objectinf[], houseinf[], aspectinf[], transitinf[];
-
- extern CONST char *szAppName, *szSignName[], *szSignAbbrev[],
- *szSignEnglish[], *szHouseTradition[], *szSystem[], *szAspectName[],
- *szAspectGlyph[], *szAspectConfig[], *szElem[], *szMode[],
- *szMonth[], *szDay[], *szZon[], *szDir[], *szSuffix[];
- extern CONST real rZon[];
- extern char *szObjName[], *szAspectAbbrev[];
- extern CONST char *szCnstlName[], *szCnstlAbbrev[], *szCnstlMeaning[],
- *szCnstlGenitive[];
- extern CONST real starbright[], stardata[];
- extern char *szMindPart[], *szDesc[], *szDesire[], *szLifeArea[],
- *szInteract[], *szTherefore[], *szModify[3][11];
-
- extern CONST real rObjDist[], rObjYear[], rObjDay[],
- rObjDiam[], rObjMass[], rObjAxis[];
- extern CONST byte cSatellite[];
- extern CONST PI pi[];
-
- extern CONST byte errorcount[];
- extern CONST byte erroroffset[];
- extern CONST real errordata[];
- extern OE rgoe[];
- extern char *szMacro[48];
- extern CONST char *szColor[];
-
-
- /* From general.c */
-
- #define PrintAltitude(deg) PrintSz(SzAltitude(deg))
- #define ErrorValR(sz, r) ErrorValN(sz, (int)r)
-
- extern void SwapR P((real *, real *));
- extern int CchSz P((CONST char *));
- extern int NCompareSz P((CONST char *, CONST char *));
- extern void ClearB P((lpbyte, int));
- extern void CopyRgb P((byte *, byte *, int));
- extern real RSgn P((real));
- extern real Angle P((real, real));
- extern real Mod P((real));
- extern real ModRad P((real));
- extern long Dvd P((long, long));
- extern int Mod12 P((int));
- extern real DecToDeg P((real));
- extern real DegToDec P((real));
- extern real MinDistance P((real, real));
- extern real MinDifference P((real, real));
- extern real Midpoint P((real, real));
- extern char Dignify P((int, int));
- extern int DayInMonth P((int, int));
- extern int DaysInMonth P((int, int));
- extern int DayOfWeek P((int, int, int));
- extern int AddDay P((int, int, int, int));
- extern real GetOrb P((int, int, int));
- extern void Terminate P((int));
- extern void PrintSz P((CONST char *));
- extern void PrintCh P((char));
- extern void PrintSzScreen P((char *));
- extern void PrintNotice P((char *));
- extern void PrintWarning P((char *));
- extern void PrintError P((char *));
- extern void ErrorArgc P((char *));
- extern void ErrorValN P((char *, int));
- extern void ErrorArgv P((char *));
- extern void ErrorSwitch P((char *));
- extern void PrintTab P((char, int));
- extern void AnsiColor P((int));
- extern void PrintZodiac P((real));
- extern char *SzZodiac P((real));
- extern char *SzAltitude P((real));
- extern char *SzDegree P((real));
- extern char *SzDate P((int, int, int, int));
- extern char *SzTime P((int, int));
- extern char *SzTim P((real));
- extern char *SzZone P((real));
- extern char *SzLocation P((real, real));
- extern void GetTimeNow P((int *, int *, int *, real *, real));
- extern int NFromAltN P((int));
- extern char *ProcessProgname P((char *));
- extern char *SzPersist P((char *));
- extern lpbyte PAllocate P((long, bool, char *));
-
-
- /* From io.c */
-
- extern FILE *FileOpen P((char *, int));
- extern bool FProcessSwitchFile P((char *, FILE *));
- extern bool FOutputData P((void));
- extern int NParseSz P((char *, int));
- extern real RParseSz P((char *, int));
- extern void InputString P((char *, char *));
- extern int NInputRange P((char *, int, int, int));
- extern real RInputRange P((char *, real, real, int));
- extern bool FInputData P((char *));
-
-
- /* From calc.c */
-
- #define RBiorhythm(day, rate) (RSin(((day)/(rate))*rPi2)*100.0)
-
- extern int HousePlaceIn P((real));
- extern void ComputeInHouses P((void));
- extern void HouseEqualMidheaven P((void));
- extern void HousePorphyryNeo P((void));
- extern void HouseWhole P((void));
- extern void HouseNull P((void));
- extern void ComputeHouses P((int));
- extern void ComputeStars P((real));
- extern real Decan P((real));
- extern void SphToRec P((real, real, real, real *, real *, real *));
- extern void ComputePlacalc P((real));
- extern real CastChart P((bool));
- extern bool FEnsureGrid P((void));
- extern bool FAcceptAspect P((int, int, int));
- extern void GetAspect P((real *, real *, real *, real *, int, int));
- extern void GetParallel P((real *, real *, real *, real *, int, int));
- extern bool FCreateGrid P((bool));
- extern bool FCreateGridRelation P((bool));
- extern void CreateElemTable P((ET *));
-
-
- /* From matrix.c */
-
- #define EclToEqu(Z, L) CoorXform(Z, L, RFromD(rAxis))
- #define EquToEcl(Z, L) CoorXform(Z, L, RFromD(-rAxis))
- #define EquToLocal(Z, L, T) CoorXform(Z, L, T)
- #define JulianDayFromTime(t) ((t)*36525.0+2415020.0)
- #define IoeFromObj(obj) \
- (obj < oMoo ? 0 : (obj <= cPlanet ? obj-2 : obj-uranLo+cPlanet-1))
- #define Tropical(deg) (deg - is.rSid + us.rZodiacOffset)
-
- extern long MdyToJulian P((int, int, int));
- extern real MdytszToJulian P((int, int, int, real, real, real));
- extern void JulianToMdy P((real, int *, int *, int *));
- extern real ProcessInput P((bool));
- extern void PolToRec P((real, real, real *, real *));
- extern void RecToPol P((real, real, real *, real *));
- extern real RecToSph P((real, real, real));
- extern void CoorXform P((real *, real *, real));
- extern void ComputeVariables P((real *));
- extern real CuspMidheaven P((void));
- extern real CuspAscendant P((void));
- extern real CuspEastPoint P((void));
- extern real CuspPlacidus P((real, real, bool));
- extern void HousePlacidus P((void));
- extern void HouseKoch P((void));
- extern void HouseEqual P((void));
- extern void HouseCampanus P((void));
- extern void HouseMeridian P((void));
- extern void HouseRegiomontanus P((void));
- extern void HousePorphyry P((void));
- extern void HouseMorinus P((void));
- extern real CuspTopocentric P((real));
- extern void HouseTopocentric P((void));
- extern real ReadThree P((real, real, real));
- extern void RecToSph2 P((real, real, real, real *, real *, real *));
- extern void ErrorCorrect P((int, real *, real *, real *));
- extern void ProcessPlanet P((int, real));
- extern void ComputePlanets P((void));
- extern void ComputeLunar P((real *, real *, real *, real *));
-
-
- #ifdef PLACALC
- /* From placalc.c */
-
- extern bool FPlacalcPlanet
- P((int, double, int, real *, real *, real *, real *));
- extern double julday P((int, int, int, double, int));
- extern void revjul P((double, int, int *, int *, int *, double *));
- #endif
-
-
- /* From charts0.c */
-
- extern void PrintW P((char *, int));
- extern void DisplayCredits P((void));
- extern void PrintS P((char *));
- extern void DisplaySwitches P((void));
- extern void DisplaySwitchesRare P((void));
- extern void PrintObjects P((void));
- extern void PrintAspects P((void));
- extern void PrintSigns P((void));
- #ifdef CONSTEL
- extern char *GetSzGenitive P((char *, char *));
- extern void GetSzConstel P((char *, int));
- extern void PrintConstellations P((void));
- #endif
- extern void PrintOrbit P((void));
- extern int NCompareSzPart P((int, int));
- extern void DisplayArabic P((void));
- #ifdef GRAPH
- extern void DisplayKeysX P((void));
- extern void DisplaySwitchesX P((void));
- #endif
- extern bool FPrintTables P((void));
-
-
- /* From charts1.c */
-
- extern void ChartListing P((void));
- extern void ChartGrid P((void));
- extern void PrintGrand P((char, int, int, int, int));
- extern void DisplayGrands P((void));
- extern void PrintHouse P((int, int));
- extern void PrintWheelCenter P((int));
- extern void PrintWheelSlot P((int));
- extern void ChartWheel P((void));
- extern void ChartAspect P((void));
- extern void ChartMidpoint P((void));
- extern void ChartHorizon P((void));
- extern void ChartOrbit P((void));
- extern void ChartAstroGraph P((void));
- extern void PrintChart P((bool));
-
-
- /* From charts2.c */
-
- extern void ChartGridRelation P((void));
- extern void ChartAspectRelation P((void));
- extern void ChartMidpointRelation P((void));
- extern void CastRelation P((bool));
- extern void PrintInDay P((int, int, int));
- extern void PrintAspect P((int, int, int, int, int, int, int, char));
- extern void ChartInDayInfluence P((void));
- extern void ChartTransitInfluence P((bool));
- extern void EclToHorizon P((real *, real *, real, real, real, real, real));
- extern void ChartCalendarMonth P((void));
- extern void ChartCalendarYear P((void));
- extern void DisplayRelation P((void));
-
-
- /* From charts3.c */
-
- extern void ChartInDaySearch P((bool));
- extern void ChartTransitSearch P((bool));
- extern void ChartInDayHorizon P((void));
- extern void ChartEphemeris P((void));
-
-
- /* From intrpret.c */
-
- #ifdef INTERPRET
- extern void FieldWord P((char *));
- extern void InterpretGeneral P((void));
- extern void InterpretAspectGeneral P((void));
- extern void InterpretLocation P((void));
- extern void InterpretAspect P((int, int));
- extern void InterpretGrid P((void));
- extern void InterpretMidpoint P((int, int));
- extern void InterpretInDay P((int, int, int));
- extern void InterpretTransit P((int, int, int));
- extern void InterpretSynastry P((void));
- extern void InterpretAspectRelation P((int, int));
- extern void InterpretGridRelation P((void));
- extern void InterpretMidpointRelation P((int, int));
- #endif
- extern void SortRank P((real *, int *, int));
- extern void ChartInfluence P((void));
-
-
- #ifdef GRAPH
- /* From xdata.c */
-
- extern GS NEAR gs;
- extern GI NEAR gi;
-
- #ifdef X11
- extern XSizeHints hint;
- extern char xkey[];
- extern char *szColorX[];
- extern KV rgbind[];
- extern KV fg, bg;
- #endif
-
- extern CONST KV rgb[], rgbbmp[];
- extern KI kMainB[], kRainbowB[], kElemB[], kAspB[], kObjB[];
-
- extern char szObjectFont[], *szDrawSign[], *szDrawObject[];
- extern CONST char szAspectFont[], *szDrawHouse[], *szDrawAspect[],
- *szDrawCh[], *szWorldData[], *szDrawConstel[];
-
-
- /* From xgeneral.c */
-
- #define BBmGet(B, X, Y) ((B)[(long)(Y)*(long)(gi.cbBmpRow) + ((X) >> 1)])
- #define FBmGet(B, X, Y) (BBmGet(B, X, Y) >> (((X)&1^1) << 2) & 15)
- #define BmSet(B, X, Y, O) BBmGet(B, X, Y) = BBmGet(B, X, Y) & \
- 15 << (((X)&1) << 2) | (O) << (((X)&1^1) << 2)
-
- #define PutByte(A) putc((byte) (A), file)
- #define PutWord(A) PutByte(BLo(A)); PutByte(BHi(A))
- #define PutLong(A) PutWord(WLo(A)); PutWord(WHi(A))
-
- #define DrawEdge(X1, Y1, X2, Y2) DrawBox(X1, Y1, X2, Y2, 1, 1)
- #define DrawEdgeAll() DrawEdge(0, 0, gs.xWin-1, gs.yWin-1)
- #define DrawLine(X1, Y1, X2, Y2) DrawDash(X1, Y1, X2, Y2, 0)
- #define DrawCircle(X, Y, RX, RY) \
- DrawEllipse((X)-(RX), (Y)-(RY), (X)+(RX), (Y)+(RY))
-
- extern void DrawColor P((KI));
- extern void DrawPoint P((int, int));
- extern void DrawSpot P((int, int));
- extern void DrawBlock P((int, int, int, int));
- extern void DrawBox P((int, int, int, int, int, int));
- extern void DrawClearScreen P((void));
- extern void DrawDash P((int, int, int, int, int));
- extern void DrawWrap P((int, int, int, int, int, int));
- extern void ClipLesser P((int *, int *, int *, int *, int));
- extern void ClipGreater P((int *, int *, int *, int *, int));
- extern void DrawClip P((int, int, int, int, int, int, int, int, int));
- extern void DrawEllipse P((int, int, int, int));
- extern void DrawSz P((CONST char *, int, int, int));
- extern void DrawSign P((int, int, int));
- extern void DrawHouse P((int, int, int));
- extern void DrawObject P((int, int, int));
- extern void DrawAspect P((int, int, int));
- extern int NFromPch P((CONST char **));
- extern void DrawTurtle P((CONST char *, int, int));
-
-
- /* From xdevice.c */
-
- #ifdef META
- /* Macros to output the various metafile commands used. */
-
- #define MetaRecord(S, R) MetaLong((long)(S)); MetaWord(R)
- #define MetaSelectObject(O) MetaRecord(4, 0x12D); MetaWord(O)
- #define MetaDeleteObject(O) MetaRecord(4, 0x1F0); MetaWord(O)
- #define MetaSaveDc() MetaRecord(3, 0x01E)
- #define MetaRestoreDc() MetaRecord(4, 0x127); MetaWord((word)-1)
- #define MetaWindowOrg(X, Y) MetaRecord(5, 0x20B); MetaWord(Y); MetaWord(X)
- #define MetaWindowExt(X, Y) MetaRecord(5, 0x20C); MetaWord(Y); MetaWord(X)
- #define MetaCreatePen(S, W, C) MetaRecord(8, 0x2FA); MetaWord(S); \
- MetaWord(W); MetaWord(W); MetaLong(C)
- #define MetaCreateBrush(S, C) MetaRecord(7, 0x2FC); \
- MetaWord(S); MetaLong(C); MetaWord(0 /* Not used */);
- #define MetaCreateFont(S, X, Y, C) MetaRecord(12+(S), 0x2FB); MetaWord(Y); \
- MetaWord(X); MetaWord(0 /* Angle */); MetaWord(0 /* Not used */); \
- MetaWord(400 /* Normal Weight */); MetaWord(0 /* Italic, Underline */); \
- MetaWord(WFromBB(0 /* Strikeout */, C)); \
- MetaWord(WFromBB(4 /* TrueType */, 0 /* Clip */))
- #define MetaBkMode(M) MetaRecord(4, 0x102); MetaWord(M)
- #define MetaTextAlign(A) MetaRecord(4, 0x12E); MetaWord(A)
- #define MetaTextColor(C) MetaRecord(5, 0x209); MetaLong(C);
- #define MetaTextOut(X, Y, S) MetaRecord(7+((S)+1)/2, 0xA32); \
- MetaWord(Y); MetaWord(X); MetaWord(S); MetaWord(0 /* ETO */)
- #define MetaRectangle(X1, Y1, X2, Y2) MetaRecord(7, 0x41B); \
- MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
- #define MetaEllipse(X1, Y1, X2, Y2) MetaRecord(7, 0x418); \
- MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
- #define MetaEscape(S) MetaRecord((S), 0x626); \
- MetaWord(15 /* MFCOMMENT */); MetaWord(((S)-5)*2 /* Bytes in comment */);
- #endif /* META */
-
- extern void WriteXBitmap P((FILE *, char *, char));
- extern void WriteAscii P((FILE *));
- extern void WriteBmp P((FILE *));
- extern void BeginFileX P((void));
- extern void EndFileX P((void));
- extern void PsStrokeForce P((void));
- extern void PsStroke P((int));
- extern void PsLineCap P((bool));
- extern void PsDash P((int));
- extern void PsLineWidth P((int));
- extern void PsFont P((int));
- extern void PsBegin P((void));
- extern void PsEnd P((void));
- extern void MetaWord P((word));
- extern void MetaLong P((long));
- extern void MetaSelect P((void));
- extern void MetaInit P((void));
- extern void WriteMeta P((FILE *));
- extern int MouseInit P((int, int));
- extern void MouseShow P((bool));
- extern bool MouseStatus P((int *, int *, int *));
-
-
- /* From xcharts0.c */
-
- extern int DrawPrint P((char *, int, int));
- extern void DrawInfo P((void));
- extern bool FReadWorldData P((char FAR **, char FAR **, char FAR **));
- extern bool FGlobeCalc P((real, real, int *, int *, int, int, int, int, int));
- extern void DrawLeyLine P((real, real, real, real));
- extern void DrawLeyLines P((int));
- extern void DrawMap P((bool, bool, int));
- extern void DrawChartX P((void));
-
-
- /* From xcharts1.c */
-
- extern void XChartWheel P((void));
- extern void XChartAstroGraph P((void));
- extern void XChartGrid P((void));
- extern void XChartHorizon P((void));
- extern void XChartHorizonSky P((void));
- extern void XChartOrbit P((void));
- extern void DrawArrow P((int, int, int, int));
- extern void XChartDispositor P((void));
- extern void XChartCalendar P((void));
- extern void XChartEphemeris P((void));
-
-
- /* From xcharts2.c */
-
- extern bool FProper P((int));
- extern void FillSymbolRing P((real *));
- extern void FillSymbolLine P((real *));
- extern real HousePlaceInX P((real));
- extern void XChartWheelRelation P((void));
- extern void XChartGridRelation P((void));
- extern void XChartBiorhythm P((void));
-
-
- /* From xscreen.c */
-
- extern void InitColorsX P((void));
- #ifdef ISG
- extern void BeginX P((void));
- extern void AddTime P((int, int));
- extern void Animate P((int, int));
- extern void CommandLineX P((void));
- extern void SquareX P((int *, int *, int));
- extern void InteractX P((void));
- extern void EndX P((void));
- #endif
- extern int NProcessSwitchesX P((int, char **, int, bool, bool, bool));
- extern int NProcessSwitchesRareX P((int, char **, int));
- extern bool FActionX P((void));
- #endif /* GRAPH */
-
- /* extern.h */
-